\relax 
\citation{ref:genedata}
\citation{benson2010genbank}
\citation{2008genbank}
\citation{ostell2005databases}
\citation{Roadrunner}
\citation{ref:genedata}
\citation{ref:Genomesproject}
\citation{BLAST}
\citation{ScalaBLAST}
\citation{pearson1988improved}
\citation{ahrens2005paraview}
\citation{pettersen2004Chimera}
\citation{ross2000pvfs}
\citation{schwan2003lustre}
\citation{Grider:PaScal}
\citation{IOforwarding}
\citation{chen2012decoupled}
\citation{sun2007server}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{\thepage }}
\citation{Lin:mpiBLAST-pio}
\citation{MR_MPI}
\citation{MPI}
\citation{ref:paraview}
\citation{needleman1970general}
\citation{pearson1988improved}
\citation{BLAST}
\citation{mpiBLAST:design}
\citation{ahrens2005paraview}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces The HDFS1 test using default HDFS represents the exact performance of ParaView without taking data location into account. The HDFS2 test represents an ideal case where all of the data needed by the MPI process is present on the given DataNode. }}{\thepage }}
\newlabel{fig:Motivation}{{1}{\thepage }}
\@writefile{toc}{\contentsline {section}{\numberline {2}Scientific Analysis/Visualization Applications}{\thepage }}
\citation{Lin:mpiBLAST-pio}
\citation{MPI}
\citation{Lin:mpiBLAST-pio}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces  A protein dataset is partitioned across multiple parallel processes; the left figure is the sub dataset rendering picture, while the right one is the composite picture of a whole dataset.}}{\thepage }}
\newlabel{fig:multiblock}{{2}{\thepage }}
\@writefile{toc}{\contentsline {section}{\numberline {3}SLAM Design and Implementation}{\thepage }}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Design Goals and System Architecture}{\thepage }}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}SLAM-I/O: A Translation Layer}{\thepage }}
\citation{ref:fusehdfs}
\citation{sequence-searching:ad-hoc}
\citation{Lin:mpiBLAST-pio}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces  Proposed SLAM for parallel BLAST. (a) The DC-scheduler employs a ``Fragment Location Monitor'' to snoop the fragments location and dispatch unassigned fragments to computation processes such that each process could read the fragments locally via SLAM-I/O. (b) The SLAM software architecture. Two new modules are used to assist parallel BLAST in accessing the distributed file system and intelligently read fragments with awareness of data locality.}}{\thepage }}
\newlabel{fig:ProposedSystemArchitecture}{{3}{\thepage }}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}A Data Centric Load-balanced Scheduler}{\thepage }}
\newlabel{section:scheduler}{{3.3}{\thepage }}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces  The I/O call in our prototype. A FUSE kernel module redirects file system calls from parallel I/O to SLAM-I/O. SLAM-I/O wraps HDFS clients and translates the I/O call to DFS I/O. }}{\thepage }}
\newlabel{fig:I/Oflow}{{4}{\thepage }}
\citation{garey1976complexity}
\citation{ref:paraview}
\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Data centric load-balanced Scheduler Algorithm}}{\thepage }}
\newlabel{alg:ADLAScheduling}{{1}{\thepage }}
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces A simple example where the DC-scheduler receives the task request of the process ($W1$). The scheduler finds the unassigned local tasks of $W1$ ($f2$, $f4$ and $f6$ in this example). The task $f6$ will be assigned to $W1$ since the minimum unassigned task value is $3$ on $W2$ and $W3$, which also has $f6$ as a local task. After assigning $f6$ to $W1$, the number of unassigned local tasks of $W1$--$4$ is $2$.}}{\thepage }}
\newlabel{fig:Scheduler}{{5}{\thepage }}
\newlabel{equ:lowerbound}{{1}{\thepage }}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}ParaView with SLAM}{\thepage }}
\citation{ref:probegarth}
\citation{Lin:mpiBLAST-pio}
\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces  Proposed SLAM for ParaView. The DC-scheduler assigns data processing tasks to MPI processes such that each MPI process could read the needed data locally. }}{\thepage }}
\newlabel{fig:ParaViewArchitecture}{{6}{\thepage }}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Specific HDFS Considerations}{\thepage }}
\@writefile{toc}{\contentsline {section}{\numberline {4}Experiments and Analysis}{\thepage }}
\newlabel{experiment}{{4}{\thepage }}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Experimental Setup }{\thepage }}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Evaluating Parallel BLAST with SLAM}{\thepage }}
\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Read bandwidth comparison of NFS, PVFS and SLAM based BLAST schemes. }}{\thepage }}
\newlabel{fig:IOperformance}{{7}{\thepage }}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Results from the Marmot cluster}{\thepage }}
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces I/O latency comparison of PVFS and SLAM based BLAST schemes on the \nobreakspace  {}\textit  {nt} database.}}{\thepage }}
\newlabel{fig:InitialDataPreparation}{{8}{\thepage }}
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Max and min node I/O time comparison of NFS, PVFS and SLAM based BLAST on the \nobreakspace  {}\textit  {nt} database.}}{\thepage }}
\newlabel{fig:DetailAnalysis}{{9}{\thepage }}
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Performance gain of BLAST execution time when searching the \nobreakspace  {}\textit  {nt} database using SLAM, compared to NFS and PVFS-based.}}{\thepage }}
\newlabel{fig:ImproveRation_Marmot}{{10}{\thepage }}
\citation{ref:Hadoop-Blast}
\citation{MR_MPI}
\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces BLAST execution time (excluding I/O time) comparison of NFS, PVFS and SLAM based BLAST programs on the \nobreakspace  {}\textit  {nt} database.}}{\thepage }}
\newlabel{fig:Searchtime}{{11}{\thepage }}
\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces Average I/O time of NFS, PVFS and SLAM based BLAST on the \nobreakspace  {}\textit  {nt} database.}}{\thepage }}
\newlabel{fig:AverageCopytime}{{12}{\thepage }}
\newlabel{equ:improvemnt}{{3}{\thepage }}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Results from the CASS cluster}{\thepage }}
\@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Illustration of data fragments that are accessed locally or remotely according to node ID. The blue triangles represent the data fragments accessed locally during the search, while the red dots represent the fragments accessed remotely.}}{\thepage }}
\newlabel{fig:DetailedDataAccess}{{13}{\thepage }}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Comparing with Hadoop-based BLAST}{\thepage }}
\citation{abola1984protein}
\citation{schwan2003lustre}
\@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces Execution time of PVFS, HDFS and SLAM based ParaView.}}{\thepage }}
\newlabel{fig:ParaVieExecutionTime}{{14}{\thepage }}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Evaluating ParaView with SLAM}{\thepage }}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1} Performance Improvement in Use of SLAM}{\thepage }}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Experiments with Lustre and Discussion}{\thepage }}
\citation{ScalaBLAST}
\citation{lin:EfficientDataAccess}
\citation{MR_MPI}
\@writefile{lof}{\contentsline {figure}{\numberline {15}{\ignorespaces Trace of time taken for each call to vtkFileSeriesReader with and without SLAM supported ParaView. Compared to PVFS-based, the number of spikes in read time are diminished and there is a smaller deviation around the trend line as computation is kept predominantly to nodes containing local copies of the needed data.}}{\thepage }}
\newlabel{fig:VTKtime}{{15}{\thepage }}
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Average Read Time per I/O Operation (s) }}{\thepage }}
\newlabel{table:Lustre}{{1}{\thepage }}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Efficiency of SLAM-I/O layer and HDFS}{\thepage }}
\@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces Read bandwidth comparison of Lustre, PVFS, HDFS (without scheduler) and SLAM based ParaView. }}{\thepage }}
\newlabel{fig:Lustre}{{16}{\thepage }}
\@writefile{toc}{\contentsline {section}{\numberline {5}Related Work}{\thepage }}
\citation{Lu:AzureBlast}
\citation{CloudBLAST}
\citation{ref:Hadoop-Blast}
\citation{bCloudBLAST}
\citation{VisualNetworkIO}
\citation{FlexIO}
\citation{Wang:VisIO}
\citation{IOforwarding}
\citation{chen2012decoupled}
\citation{sun2007server}
\citation{In-situProcessing}
\citation{Mesos}
\citation{dean2008mapreduce}
\citation{Spark}
\bibstyle{abbrv}
\bibdata{BibFiles/BLAST-HDFS}
\bibcite{ref:fusehdfs}{1}
\bibcite{ref:genedata}{2}
\bibcite{ref:Genomesproject}{3}
\bibcite{ref:Hadoop-Blast}{4}
\bibcite{abola1984protein}{5}
\bibcite{ahrens2005paraview}{6}
\bibcite{BLAST}{7}
\bibcite{In-situProcessing}{8}
\bibcite{benson2010genbank}{9}
\bibcite{chen2012decoupled}{10}
\bibcite{mpiBLAST:design}{11}
\bibcite{dean2008mapreduce}{12}
\bibcite{sequence-searching:ad-hoc}{13}
\bibcite{garey1976complexity}{14}
\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusions}{\thepage }}
\@writefile{toc}{\contentsline {section}{\numberline {7}References}{\thepage }}
\bibcite{ref:probegarth}{15}
\bibcite{Grider:PaScal}{16}
\bibcite{Roadrunner}{17}
\bibcite{Mesos}{18}
\bibcite{IOforwarding}{19}
\bibcite{lin:EfficientDataAccess}{20}
\bibcite{Lin:mpiBLAST-pio}{21}
\bibcite{Lu:AzureBlast}{22}
\bibcite{CloudBLAST}{23}
\bibcite{bCloudBLAST}{24}
\bibcite{Wang:VisIO}{25}
\bibcite{needleman1970general}{26}
\bibcite{ScalaBLAST}{27}
\bibcite{ostell2005databases}{28}
\bibcite{pearson1988improved}{29}
\bibcite{pettersen2004Chimera}{30}
\bibcite{ross2000pvfs}{31}
\bibcite{schwan2003lustre}{32}
\bibcite{VisualNetworkIO}{33}
\bibcite{MPI}{34}
\bibcite{ref:paraview}{35}
\bibcite{2008genbank}{36}
\bibcite{MR_MPI}{37}
\bibcite{sun2007server}{38}
\bibcite{Spark}{39}
\bibcite{FlexIO}{40}
